package leetcode;

import java.util.Arrays;

//这个题的解题思路特别好
//合并两个数组,合并后按递增排列,第一个数组的大小为m+n,后面用n个0来替代,第二个数组的大小为m,合并前也是递增数列
public class Solution {
    public static void merge(int [] nums1,int m,int[] nums2,int n){
        int end1 = m - 1;
        int end2 = n - 1;
        int end = m + n - 1;
        while((end1 >= 0)&&(end2 >= 0)){
            if(nums1[end1] > nums2[end2]){
                nums1[end--] = nums1[end1--];
            }else{
                nums1[end--] = nums2[end2--];
            }
        }
        while(end2 >= 0){
            nums1[end--] = nums2[end2--];
        }
    }

    public static void main(String[] args) {
        int []nums1 = new int[]{1,2,3,0,0,0};
        int []nums2 = new int[]{2,5,6};
        merge(nums1,3,nums2,3);
        System.out.println(Arrays.toString(nums1));
    }
}
